package cheeese.and.crackers;

import java.io.Serializable;

/**
 * Class to represent a Task to be completed
 * @author Cheese and Crackers
 *
 */
public class Task implements Serializable{
	
	private static final long serialVersionUID = 7526472295622776142L;
	private String displayDescription;
	private String location;
	private String dueDate;
	private String details;
	private String type;
	private Boolean complete;
	
	/**
	 * Constructor to create a new task with passed attributes
	 * 
	 * @param displayDescription Display Description of new task
	 * @param location Location of new task
	 * @param dueDate Due Date of new task
	 * @param details Detail of new task
	 * @param type Type of new task
	 */
	public Task(String displayDescription, String location, String dueDate, String details, String type, Boolean complete){
		this.displayDescription = displayDescription;
		this.location = location;
		this.dueDate = dueDate;
		this.details = details;
		this.type = type;
		this.complete = complete;
	}
	
	/**
	 * Gets task's Display Description
	 * 
	 * @return Task's Display Description
	 */
	public String getDisplayDescription() {
		return displayDescription;
	}
	/**
	 * Sets task's Display Description
	 * @param diplayDescription New Display Description to be set
	 */
	public void setDisplayDescription(String diplayDescription) {
		this.displayDescription = diplayDescription;
	}
	/**
	 * Gets task's location
	 * @return Task's location
	 */
	public String getLocation() {
		return location;
	}
	/**
	 * Sets task's location
	 * @param location New Location to be set
	 */
	public void setLocation(String location) {
		this.location = location;
	}
	/**
	 * Gets task's Due Date
	 * @return Task's Due Date
	 */
	public String getDueDate() {
		return dueDate;
	}
	/**
	 * Sets task's due date
	 * @param dueDate New Due Date to be set
	 */
	public void setDueDate(String dueDate) {
		this.dueDate = dueDate;
	}
	/**
	 * Gets task's Details
	 * @return Task's Details
	 */
	public String getDetails() {
		return details;
	}
	/**
	 * Sets task's Details
	 * @param details New Details to be set
	 */
	public void setDetails(String details) {
		this.details = details;
	}
	/**
	 * Gets task's type
	 * @return Task's type
	 */
	public String getType() {
		return type;
	}
	/**
	 * Sets task's type
	 * @param type New type to be set
	 */
	public void setType(String type) {
		this.type = type;
	}

	public Boolean getComplete() {
		return complete;
	}
	
	public void setComplete(Boolean complete){
		this.complete = complete;
	}
}
